C++中string类型的erase()函数详解 您所在的位置:网站首页 string操作 长度 C++中string类型的erase()函数详解

C++中string类型的erase()函数详解

2023-07-27 14:55| 来源: 网络整理| 查看: 265

标准库类型string表示可变长的字符序列。可以通过string类的erase()函数来对该字符序列进行删除操作。erase()函数共有3种格式,分别用来删除指定位置的字符、删除指定长度的字符串和删除指定范围的字符串。

1 删除指定位置的字符

erase()函数用于删除指定位置字符的格式为

iterator erase (iterator p);

其中,参数iterator是迭代器,即删除迭代器p指向的字符。返回值为删除后的字符串。

2 删除指定长度的字符串

erase()函数用于删除指定长度字符串的格式为

string& erase(size_t pos=0, size_t len = npos);

其中,参数pos表示要删除字符串的起始位置,其默认值是0;len表示要删除字符串的长度,其默认值是string::npos。返回值是删除后的字符串。

相关链接:

string::npos,是string类型的静态常量成员,表示size_t类型的最大值。在用于表示string长度时,实际上就是指定了string类型对象的长度。所以,对于erase()函数的第二种格式,其默认参数的含义就是将string中的所有内容都删除。

3 删除指定范围的字符串

erase()函数用于删除指定范围字符串的格式为

iterator erase (iterator first, iterator last);

其中,first和last分别表示范围的起点和终点。需要注意的是,该范围包含first,但是不包含last,即该范围是[first, last)。erase()函数的返回值是删除后的字符串。

4 相关代码 std::string str("This is an example sentence."); str.erase(10, 8);                       str.erase(str.begin() + 9);           str.erase(str.begin() + 5, str.end() - 9);

str是string类型的变量,首先调用erase()函数在str中删除指定长度的字符串,即删除从第10位开始,长度为8的字符串。需要注意的是,str的起始位置是从0开始的。删除的str变为“This is an sentence.”接下来调用erase()函数删除指定位置的字符,str.begin()是获取str起始位置处的迭代器,删除str.begin()+9迭代器对应的字符,即字符“n”。此时,str的值变为“This is a sentence.”。最后,调用erase()函数删除指定范围的字符串。最终,str的值变为“This sentence.”。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有